#ifndef __PRODUCE_VIEW_H__
#define __PRODUCE_VIEW_H__

#include "gofgame/common/ui/ScrollContainer.h"
#include "gofgame/dungeonkeeper/game/skill/ProduceManager.h"
#include "gofgame/common/Iterator.h"
#include <set>
#include <list>
#include <map>

namespace gofgame {
	namespace dungeonkeeper {
		namespace ui {

			using namespace gofgame::common::ui;
			using namespace gofgame::dungeonkeeper::game::skill;
			using namespace gofgame::common;
			using namespace std;

			class ProduceView : public ScrollContainer {
			public:
				virtual bool init() _override;

				/*
				 * Fuck STL!!!! 
				 * I have to write these three methods
				 * actually, I want 
				 * void setDataSource(const collection<SkillElementViewInfo> &vevis);
				 */
				void setDataSource(const set<ProduceElementViewInfo> &pevis);
				void setDataSource(const vector<ProduceElementViewInfo> &pevis);
				void setDataSource(const list<ProduceElementViewInfo> &pevis);

				virtual void setDataSource(Ref<Iterator<ProduceElementViewInfo>> iterator);
			};
		}
	}
}

#endif //__PRODUCE_VIEW_H__
